Skip to main content
`Ctrl`+`K`

# ng911ok.lib.counties module

class CountyInfo(state: str, name: str, fips3: str, number: int | None = None)

  Bases: `object`

  Provides some basic information about counties based on the data in `counties.yml`. The class method `load()` automatically reads in the data from that YAML file and returns a `FrozenList` of `CountyInfo` instances, while the class method `load_df()` provides that information as a `pandas.DataFrame`.

  When sorted, instance of this class are arranged alphabetically by their `state`, then by `name`, then by `fips3`, then by `number`.

  classmethod _yaml_from_feature_class(input_fc: Path, output_yaml: Path, name_field: str, fips_field: str, number_field: str | None = None, state_field: str | None = None, default_state: str | None = None) → Path

    Generates `counties.yml` based on a feature class containing the relevant data.

    Warning

    This method will, without confirmation, overwrite the file located at output_yaml, should one already exist.

    Parameters:

      - input_fc (pathlib.Path) – Feature class containing relevant data

      - output_yaml (pathlib.Path) – Path to which the generated YAML will be written

      - name_field (str) – Name of the county name field in input_fc

      - fips_field (str) – Name of the three-digit FIPS code field in input_fc

      - number_field (Optional[str]) – Name of the state-assigned county number field in input_fc

      - state_field (Optional[str]) – Name of the state field in input_fc

      - default_state (Optional[str]) – State to use for all records generated in lieu of a state_field

    Returns:

      Path to the generated YAML file

    Return type:

      pathlib.Path

  classmethod get_county(name: str | None = None, state: str | None = None, *, fips3: str | int | None = None, number: int | None = None) → Self

    Returns the `CountyInfo` object matching the supplied criteria.

    Exactly one of name, fips3, or number is required. If multiple counties match based on the given criterion of those three options, the state argument will be used to filter further. If a state argument is needed but absent, or if the number of candidates is not exactly one, a `LookupError` will be raised.

    In the case of name, a space followed by the jurisdiction type name, e.g., “COUNTY”, is automatically removed. If state is provided, `_county_equivalent_names` will be used to determine the term to strip. If state is not provided, `_county_equivalent_name_default` will be used.

    Parameters:

      - name (Optional[str]) – Name of the county to search for

      - state (Optional[str]) – Name of the state containing the desired county

      - fips3 (Optional[str | int]) – Three-digit FIPS code for the desired county

      - number (Optional[int]) – The state-assigned county number of the desired county

    Returns:

      The county matching the supplied criteria

    Return type:

      CountyInfo

  classmethod load() → FrozenList[Self]

    Loads and returns all `CountyInfo` objects represented in `counties.yml`.

  classmethod load_df() → DataFrame

    Loads and returns all `CountyInfo` objects represented in `counties.yml` as a `pandas.DataFrame`. The resulting data frame will have the following columns and `dtype`s:

    - `state` - `string[python]`

    - `name` - `string[python]`

    - `fips3` - `string[python]`

    - `number` - `Int64`

  _county_equivalent_name_default: ClassVar[str] = 'COUNTY'

    Term used by default to refer to county-equivalent jurisdictions in computing `full_name`. Overridden for individual states in `_county_equivalent_names`.

  _county_equivalent_names: ClassVar[dict[str, str]] = {}

    Mapping of state name (`state`) to the term used locally for county-equivalent jurisdictions, e.g., `{"LOUISIANA": "PARISH"}`. For states not included in this dict, the string in `_county_equivalent_name_default` will be used by `full_name`.

  fips3: str

    Three-digit FIPS code for the county.

  property full_name: str
  name: str

    Name of the county (uppercase).

  number: int | None

    State-assigned county number for the county.

  state: str

    State in which the county lies (uppercase).

class CountyInfoDumper(stream, default_style=None, default_flow_style=False, canonical=None, indent=None, width=None, allow_unicode=None, line_break=None, encoding=None, explicit_start=None, explicit_end=None, version=None, tags=None, sort_keys=True)

  Bases: `Dumper`

  Class used in the process of generating `counties.yml`.

  See also

  `CountyInfo._yaml_from_feature_class()`

  represent_data(data)